#pragma once

#include <string>
// 向前声明
class Vec3;
class Quat;
class Model;
class ColliderBase;

class Node
{
private:
    std::string _id;
    Vec3 *_pos; //手动释放
    Vec3 *_scale; //手动释放
    Quat *_rotation; //手动释放
    Model *_model; //手动释放
    ColliderBase *_collider; //手动释放

public:
    Node(std::string id);
    ~Node();

    std::string getID();
    void setPosition(float x, float y, float z);
    void setScale(float x, float y, float z);
    void setRotation(float x, float y, float z, float w);
    Vec3 *getPosition();
    Vec3 *getScale();
    Quat *getRotation();
    void destroy();

    //  void initModel();

    ColliderBase *addBoxCollider();
    ColliderBase *addSphereCollider();
    ColliderBase *getCollider();
    void delCollider();

    
};
